package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * 集合之间的操作
 * 并集，交集，差集*/
public class CollectionDemo3 {
    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("java");
        c1.add("c++");
        c1.add(".net");
        System.out.println("c1:"+c1);

        Collection c2 = new HashSet();
        c2.add("android");
        c2.add("ios");
        c2.add("java");
        System.out.println("c2:"+c2);

        /*取并集
         addAll(Collection c)
        取并集，讲给定集合中的所有元素添加到当前集合中
        * */
        c1.addAll(c2);
        //c2.addAll(c1);//c1中与c2重复的元素无法再次存入c2
        System.out.println("c1:"+c1);
        System.out.println("c2:"+c2);
        System.out.println("-----------------------------");

        Collection c3 = new ArrayList();
        c3.add("php");
        c3.add("c++");
        c3.add("java");
        System.out.println("c3:"+c3);
        /*
        * 取交集
        *  retainAll(Collection c)
        * 保留当前集合中与给定集合共有的元素，参数集合元素不受任何影响
        * */
        c1.retainAll(c3);
        System.out.println("c1:"+c1);
        System.out.println("c3:"+c3);
        System.out.println("------------------");

        /*
        * 取差集
        *  removeAll(Collection c)
        * 删除当前集合中与给定集合共有的元素，参数集合元素不受任何影响*/
        c2.removeAll(c3);
        System.out.println("c2:"+c2);
        System.out.println("c3:"+c3);
        System.out.println("------------------");

        Collection c4 = new ArrayList();
        c4.add(".net");
        c4.add("ios");
       // c4.add("php");
        System.out.println("c4:"+c4);
        /*boolean containsAll(Collection c)
        * 判断当前集合是否包含给定集合中的所有元素
        * */
        boolean contains = c2.containsAll(c4);
        System.out.println("c2是否包含c4:"+contains);


    }
}
